package com.start.workflow.core.event;

import com.start.workflow.entity.StartActBusinessEntity;
import org.activiti.engine.task.Task;

/**
 * 流程任务事件
 */
public interface StartWorkFlowTaskEvent extends StartWorkFLowEvent {
    /**
     * 任务创建前
     * modelKey 流程模型key
     * modelCategoryKey 流程模型类别
     * processInstanceId 流程实例id
     */
    void onTaskCreateBefore(StartActBusinessEntity actBusiness, Task task);

    /**
     * 任务创建后
     *
     * @param actBusiness
     * @param task
     */
    void onTaskCreateAfter(StartActBusinessEntity actBusiness, Task task);

    /**
     * 任务完成前
     *
     * @param actBusiness
     * @param task
     */
    void onTaskCompleteBefore(StartActBusinessEntity actBusiness, Task task);

    /**
     * 任务完成后
     *
     * @param actBusiness
     * @param task
     */
    void onTaskCompleteAfter(StartActBusinessEntity actBusiness, Task task);

    /**
     * 任务驳回前
     *
     * @param actBusiness
     * @param task
     */
    void onTaskRejectBefore(StartActBusinessEntity actBusiness, Task task);

    /**
     * 任务驳回后
     *
     * @param actBusiness
     * @param task
     */
    void onTaskRejectAfter(StartActBusinessEntity actBusiness, Task task);
}
